package cn.community.system.vo;

import com.alibaba.fastjson.JSON;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;

@Getter
@Setter
public class AssoMemberVo {
    public static final char SEX_GIRL = '女';
    public static final char SEX_BOY = '男';

    private Long id;
    private String nickname;  //  昵称
    private String username;  //  用户名（姓名）
    private String password;  //  密码
    private String number;    // 学号
    private String academy;    // 学院
    private String major;    // 专业
    private String className;    // 班级
    private Character sex = SEX_BOY;  //  性别（默认：男）
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birth;    // 生日
    private String email;   // 邮箱
    private String mobile;  //  联系方式
    private Date degisteTime;  // 注册时间
    private Integer activities;   // 参加活动次数
    private Double activityTime;  // 活动总时长（单位：小时）
    private String imgUrl;   // 图片路径

    private Long relationId;
    private Long assoId;  // 社团id
    private String assoname; // 社团名称
    private Long memberId;  // 学生id
    private String name;  // 学生名字
    private Long deptId;  // 部门id
    private String deptname;  // 部门名称

    public static final int AGREE_NORMAL = 0;  // 待审核
    public static final int AGREE_YES = 1;  // 审核通过
    public static final int AGREE_NO = 2;  // 审核拒绝
    private Integer isAgree = -1;  //  是否加入该社团（0=待审核 1=通过 2=未通过，由社团进行审核）
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date passTime;      // 通过时间（入会时间）

    public String getJsonString(){
        HashMap<String, Object> map = new HashMap<>();
        map.put("id",id);
        map.put("relationId",relationId);
        map.put("deptname",deptname);
        map.put("assoId",assoId);
        map.put("memberId",memberId);
        map.put("name",name);
        map.put("number",number);
        map.put("isAgree",isAgree);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        if(passTime != null){
            map.put("passTime",format.format(passTime));
        }else {
            map.put("passTime",null);
        }

        return JSON.toJSONString(map);
    }
}
